type A1 = [1]
// infer First 尝试从匹配的类型中推断出第一个元素的类型。
// ...infer Rest 尝试将剩余的元素推断为一个数组类型。

// 这里只要数组有第一个值则成立
type ExampleA = A1 extends [infer First, ...infer Rest] ? First : never // 1